package com.xdtech.trans.service;

import java.util.List;

import com.xdtech.common.service.IBaseService;
import com.xdtech.trans.model.TransOrderScan;
import com.xdtech.trans.model.TransOrderTrack;
import com.xdtech.trans.vo.TransOrderTrackItem;

/**
 * 
 * @author max.zheng
 * @create 2015-06-08 23:21:29
 * @since 1.0
 * @see
 */
public interface TransOrderTrackService extends IBaseService<TransOrderTrack>{

	/**
	 * 保存更新信息
	 * @author max.zheng
	 * @create 2015-06-08 23:21:29
	 * @modified by
	 * @param item
	 * @return
	 */
	boolean saveOrUpdateTransOrderTrack(TransOrderTrackItem item);

	/**
	 * 加载记录信息
	 * @author max.zheng
	 * @create 2015-06-08 23:21:29
	 * @modified by
	 * @param newId
	 * @return
	 */
	TransOrderTrackItem loadTransOrderTrackItem(Long transOrderTrackId);

	/**
	 * 根据id号删除记录信息
	 * @author max.zheng
	 * @create 2015-06-08 23:21:29
	 * @modified by
	 * @param id
	 * @return
	 */
	boolean deleteTransOrderTrackInfo(long id);

	/**
	 * 
	 * @author max.zheng
	 * @create 2015-06-08 23:21:29
	 * @modified by
	 * @param transOrderTrackIds
	 */
	boolean deleteTransOrderTrackInfo(List<Long> transOrderTrackIds);
	
	/**
	 * 加载vo列表条目
	 * @author max.zheng
	 * @create 2015-06-08 23:21:29
	 * @modified by
	 * @return
	 */
	List<TransOrderTrackItem> loadItems();

	/**
	 * 寄件流程跟踪
	 * @author <a href="max.zheng@zkteco.com">郑志雄</>
	 * @since 2015-6-10 下午4:33:27
	 * @param transOrderScan
	 */
	void startTrack(TransOrderScan transOrderScan);

	/**
	 * 发件流程跟踪
	 * @author <a href="max.zheng@zkteco.com">郑志雄</>
	 * @since 2015-6-10 下午4:55:14
	 * @param transOrderScan
	 */
	void sendTrack(TransOrderScan transOrderScan);

	/**
	 * 到件流程跟踪
	 * @author <a href="max.zheng@zkteco.com">郑志雄</>
	 * @since 2015-6-10 下午5:02:13
	 * @param transOrderScan
	 */
	void arriveTrack(TransOrderScan transOrderScan);

	/**
	 * 派件流程跟踪
	 * @author <a href="max.zheng@zkteco.com">郑志雄</>
	 * @since 2015-6-10 下午5:08:40
	 * @param transOrderScan
	 */
	void deliveryTrack(TransOrderScan transOrderScan);

	/**
	 * 签收流程跟踪
	 * @author <a href="max.zheng@zkteco.com">郑志雄</>
	 * @since 2015-6-10 下午5:15:34
	 * @param transOrderScan
	 */
	void signTrack(TransOrderScan transOrderScan);

	/**
	 * 
	 * @author max.zheng
	 * @create 2015-7-20下午11:29:02
	 * @modified by
	 * @param orders
	 * @return
	 */
	List<TransOrderTrackItem> loadTracksByOrderNos(String orders);
}
